package com.bit.cfdi.web.vm.wizard;

import java.util.List;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.WireVariable;

import com.bit.cfdi.web.domain.Contacto;
import com.bit.cfdi.web.domain.Persona;
import com.bit.cfdi.web.domain.Telefono;
import com.bit.cfdi.web.domain.Usuario;
import com.bit.cfdi.web.session.SessionUtils;

@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class WizardViewParserPaso1 {
	
	private Logger log = LogManager.getLogger(this.getClass().getName());
	
	@WireVariable private SessionUtils sessionUtils;
	
	private String nombreUsuario;
	private String paternoUsuario;
	private String maternoUsuario;	
	private List<Telefono> telefonos;		
	
	public String getNombreUsuario() {
		return nombreUsuario;
	}
	
	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}
	
	public String getPaternoUsuario() {
		return paternoUsuario;
	}
	
	public void setPaternoUsuario(String paternoUsuario) {
		this.paternoUsuario = paternoUsuario;
	}
	
	public String getMaternoUsuario() {
		return maternoUsuario;
	}
	
	public void setMaternoUsuario(String maternoUsuario) {
		this.maternoUsuario = maternoUsuario;
	}
	
	public List<Telefono> getTelefonos() {
		return telefonos;
	}
	
	public void setTelefonos(List<Telefono> telefonos) {
		this.telefonos = telefonos;
	}
	
	public Persona getPersonaInfo()
	{
		Contacto contacto = new Contacto();		
		for(Telefono currentTel : telefonos)
		{
			if(currentTel.getNumero() == null)
			{
				currentTel.setNumero("");
			}
			if(currentTel.getExtension() == null)
			{
				currentTel.setExtension("");
			}
			if(!currentTel.getNumero().trim().isEmpty() ||
				!currentTel.getExtension().trim().isEmpty())
			{
				currentTel.setContacto(contacto);
				contacto.getTelefonos().add(currentTel);
			}
		}		
		Persona persona = new Persona();
		persona.setContacto(contacto);
		persona.setNombre(nombreUsuario);
		persona.setApellidoPaterno(paternoUsuario);
		persona.setApellidoMaterno(maternoUsuario);				
					
		return persona;
	}	
}
